Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析

您所在的位置:网站首页 pytorch gpu加速 Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析

Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析

#Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析| 来源: 网络整理| 查看: 265

Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析 发布时间:2021-02-08 09:11:53 来源:亿速云 阅读:97 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

分类网络

import torch import torch.nn.functional as F from torch.autograd import Variable import matplotlib.pyplot as plt # 构造数据 n_data = torch.ones(100, 2) x0 = torch.normal(3*n_data, 1) x1 = torch.normal(-3*n_data, 1) # 标记为y0=0,y1=1两类标签 y0 = torch.zeros(100) y1 = torch.ones(100) # 通过.cat连接数据 x = torch.cat((x0, x1), 0).type(torch.FloatTensor) y = torch.cat((y0, y1), 0).type(torch.LongTensor) # .cuda()会将Variable数据迁入GPU中 x, y = Variable(x).cuda(), Variable(y).cuda() # plt.scatter(x.data.cpu().numpy()[:, 0], x.data.cpu().numpy()[:, 1], c=y.data.cpu().numpy(), s=100, lw=0, cmap='RdYlBu') # plt.show() # 网络构造方法一 class Net(torch.nn.Module):  def __init__(self, n_feature, n_hidden, n_output):  super(Net, self).__init__()  # 隐藏层的输入和输出  self.hidden1 = torch.nn.Linear(n_feature, n_hidden)  self.hidden2 = torch.nn.Linear(n_hidden, n_hidden)  # 输出层的输入和输出  self.out = torch.nn.Linear(n_hidden, n_output)  def forward(self, x):  x = F.relu(self.hidden2(self.hidden1(x)))  x = self.out(x)  return x # 初始化一个网络,1个输入层,10个隐藏层,1个输出层 net = Net(2, 10, 2) # 网络构造方法二 ''' net = torch.nn.Sequential(  torch.nn.Linear(2, 10),  torch.nn.Linear(10, 10),  torch.nn.ReLU(),  torch.nn.Linear(10, 2), ) ''' # .cuda()将网络迁入GPU中 net.cuda() # 配置网络优化器 optimizer = torch.optim.SGD(net.parameters(), lr=0.2) # SGD: torch.optim.SGD(net.parameters(), lr=0.01) # Momentum: torch.optim.SGD(net.parameters(), lr=0.01, momentum=0.8) # RMSprop: torch.optim.RMSprop(net.parameters(), lr=0.01, alpha=0.9) # Adam: torch.optim.Adam(net.parameters(), lr=0.01, betas=(0.9, 0.99)) loss_func = torch.nn.CrossEntropyLoss() # 动态可视化 plt.ion() plt.show() for t in range(300):  print(t)  out = net(x)  loss = loss_func(out, y)  optimizer.zero_grad()  loss.backward()  optimizer.step()  if t % 5 == 0:  plt.cla()  prediction = torch.max(F.softmax(out, dim=0), 1)[1].cuda()  # GPU中的数据无法被matplotlib利用,需要用.cpu()将数据从GPU中迁出到CPU中  pred_y = prediction.data.cpu().numpy().squeeze()  target_y = y.data.cpu().numpy()  plt.scatter(x.data.cpu().numpy()[:, 0], x.data.cpu().numpy()[:, 1], c=pred_y, s=100, lw=0, cmap='RdYlBu')  accuracy = sum(pred_y == target_y) / 200  plt.text(1.5, -4, 'accuracy=%.2f' % accuracy, fontdict={'size':20, 'color':'red'})  plt.pause(0.1) plt.ioff() plt.show()

Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析

回归网络

import torch import torch.nn.functional as F from torch.autograd import Variable import matplotlib.pyplot as plt # 构造数据 x = torch.unsqueeze(torch.linspace(-1,1,100), dim=1) y = x.pow(2) + 0.2*torch.rand(x.size()) # .cuda()会将Variable数据迁入GPU中 x, y = Variable(x).cuda(), Variable(y).cuda() # plt.scatter(x.data.numpy(), y.data.numpy()) # plt.show() # 网络构造方法一 class Net(torch.nn.Module):  def __init__(self, n_feature, n_hidden, n_output):  super(Net, self).__init__()  # 隐藏层的输入和输出  self.hidden = torch.nn.Linear(n_feature, n_hidden)  # 输出层的输入和输出  self.predict = torch.nn.Linear(n_hidden, n_output)  def forward(self, x):  x = F.relu(self.hidden(x))  x = self.predict(x)  return x   # 初始化一个网络,1个输入层,10个隐藏层,1个输出层 net = Net(1, 10, 1) # 网络构造方法二 ''' net = torch.nn.Sequential(  torch.nn.Linear(1, 10),  torch.nn.ReLU(),  torch.nn.Linear(10, 1), ) ''' # .cuda()将网络迁入GPU中 net.cuda() # 配置网络优化器 optimizer = torch.optim.SGD(net.parameters(), lr=0.5) # SGD: torch.optim.SGD(net.parameters(), lr=0.01) # Momentum: torch.optim.SGD(net.parameters(), lr=0.01, momentum=0.8) # RMSprop: torch.optim.RMSprop(net.parameters(), lr=0.01, alpha=0.9) # Adam: torch.optim.Adam(net.parameters(), lr=0.01, betas=(0.9, 0.99)) loss_func = torch.nn.MSELoss() # 动态可视化 plt.ion() plt.show() for t in range(300):  prediction = net(x)  loss = loss_func(prediction, y)  optimizer.zero_grad()  loss.backward()  optimizer.step()  if t % 5 == 0 :  plt.cla()  # GPU中的数据无法被matplotlib利用,需要用.cpu()将数据从GPU中迁出到CPU中  plt.scatter(x.data.cpu().numpy(), y.data.cpu().numpy())  plt.plot(x.data.cpu().numpy(), prediction.data.cpu().numpy(), 'r-', lw=5)  plt.text(0.5, 0, 'Loss=%.4f' % loss.item(), fontdict={'size':20, 'color':'red'})  plt.pause(0.1) plt.ioff() plt.show()

Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析

关于“Pytorch搭建分类回归神经网络并使用GPU进行加速的案例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pytorch 上一篇新闻:如何搭建微服务SpringCloud项目架构 下一篇新闻:Spring Cloud搭建Config的操作步骤 香港云服务器 10000元红包免费领

红包可用于(云服务器、高防服务器、裸金属服务器、高防IP、云数据库、CDN加速)购买和续费

猜你喜欢 Python如何实现生成bmp图像功能 Python如何实现随机生成迷宫并自动寻路 Javascript结合Vue怎样实现对任意迷宫图片的自动寻路功能 Go容器遍历的示例分析 python基础入门之列表的示例分析 python中虚拟环境如何创建 python如何配置mssql连接的方法 python环境安装及编辑器配置的示例分析 Spring Aop执行顺序的示例分析 Python中怎么实现自动化刷抖音


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3